Online game has grown in popularity within the gaming world. Traditionally, games used either a client-server setup or a peer-to-peer setup for executing a game for game play. In a typical client-server setup, the server needs to provide sufficient compute power to process physics, audio, transmission, etc., of the game data that is generated during game play of the game. With the growing popularity of massive multi-player online game (MMO), the traditional client-server setup is unable to handle the processing load (i.e., game data) resulting from inputs provided by a plurality of users (e.g., 1000s of players) during game play. In the MMO game, each of the plurality of players needs to be provided with their own perception of the gaming world during game play. For example, a first player may be approaching a certain challenge from the right side of a gaming world, a second player may be approaching the same challenge from the left side of the gaming world, while a third player may be approaching the challenge from a front side of the gaming world. Each of these players may provide inputs to overcome the certain challenge. The server needs to determine which player's inputs need to be processed first and to generate the overall game state of the game. The server also needs to be able to generate different game data for each of the players so as to provide their own perception of the gaming world. The server has limited resources to only support a certain number of players (i.e., users) and when the number of players exceeds this certain number, the resources of the server may be stretched too thin, resulting in less-than-optimal quality of game play of the game. In a peer-to-peer setup, the processing burden is more on a network that is used to exchange game data, while the processing is distributed among the peers. Additionally, one of the peers acts as the “server” and takes on additional processing load, which can add to stress on the resources of that peer.
In a typical MMO game, there can be hundreds or thousands of players that may be accessing the online game, at any given time. In order to allow the players to have an optimal game play experience, a plurality of servers may be used to support game play of the hundreds or thousands of players and the players may be organized into logical grouping, with each logical grouping assigned to a server realm. However, as in the above client-server setup, the server realm has a limit on the number of users (i.e., game play characters). When a new user initiates a request to access the game play in a particular server realm, the new user may be put in a queue for the server realm if the number of users in the server realm has reached the server's limit resulting in unnecessary delay for the new user to initiate the game play. Additionally, if the new user requests to join a particular server realm that is in a different time zone, the new user may be assigned to the particular server realm even though the particular server realm may not be the optimal option, based on the user's current geo location. This is especially an issue, when the new user wants to engage in game play of the online game with his friends and want to start at a certain level of game play. The assignment of the new user to the particular server realm would result in the new user experiencing latency, which can cause less than satisfactory experience for the new user.
It is in this context that embodiments of the disclosure arise.